# Contributor: Oliver Smith <ollieparanoid@postmarketos.org>
# Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
# Do not change arch to noarch, until this bug is resolved:
# https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10022
pkgname=calamares-extensions
pkgver=1.3.2
pkgrel=0
# armhf blocked by qt5-qtdeclarative
# ppc64le, s390x and riscv64 blocked by qt5-qtwebengine -> calamares
arch="all !armhf !ppc64le !s390x !riscv64"
url="https://github.com/calamares/calamares-extensions"
pkgdesc="Calamares Branding and Module Examples"
license="GPL-3.0-or-later"
makedepends="
	calamares-dev
	qt5-qtsvg-dev
	qt5-qtdeclarative-dev
	"
source="
	calamares-extensions-$pkgver.tar.gz::https://github.com/calamares/calamares-extensions/archive/refs/tags/v$pkgver.tar.gz
	"
options="!check" # has no tests

# Modules and brandings to build:
# https://github.com/calamares/calamares-extensions/tree/calamares/modules
# https://github.com/calamares/calamares-extensions/tree/calamares/branding
_modules="
	mobile
	"
_brandings="
	default-mobile
	"

for i in $_modules; do
	subpackages="$pkgname-mod-$i:_module $subpackages"
done
for i in $_brandings; do
	subpackages="$pkgname-brand-$i:_branding $subpackages"
done

# Check if one module/branding is enabled
# $1: name of module/branding
# $2: either $_modules or $_brandings
is_enabled() {
	local i
	for i in $2; do
		[ "$i" = "$1" ] && return 0
	done
	return 1
}

# Check if string $1 is in CMakeLists.txt and comment it out
comment_out() {
	sed -i "s~$1~#&~g" "$builddir/CMakeLists.txt"
}

prepare() {
	default_prepare

	local i

	msg "disabled modules:"
	cd "$builddir/modules"
	for i in *; do
		if ! [ -d "$i" ] || is_enabled "$i" "$_modules"; then
			continue
		fi
		echo " - $i"
		comment_out "calamares_add_module_subdirectory( modules/$i "
	done

	msg "disabled brandings:"
	cd "$builddir/branding"
	for i in *; do
		if ! [ -d "$i" ] || is_enabled "$i" "$_brandings"; then
			continue
		fi
		echo " - $i"
		comment_out "calamares_add_branding_subdirectory( branding/$i "
	done
}

build() {
	cmake -B build \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib
	cmake --build build
}

_module() {
	local module=${subpkgname##calamares-extensions-mod-}
	local path="usr/lib/calamares/modules"

	mkdir -p "$subpkgdir/$path"
	mv "$pkgdir/$path/$module" "$subpkgdir/$path/$module"
}

_branding() {
	local branding=${subpkgname##calamares-extensions-brand-}
	local path="usr/share/calamares/branding"

	mkdir -p "$subpkgdir/$path"
	mv "$pkgdir/$path/$branding" "$subpkgdir/$path/$branding"
}

package() {
	DESTDIR="$pkgdir" cmake --install build
}

sha512sums="
acd3febfb122b01a42723a2e45d62509c936e05472a9521542166eda9b406f5d787db2b1ca5b756d22412376b4dc4a003f5ebd7148c73d54b037986793985aa0  calamares-extensions-1.3.2.tar.gz
"
